using Castle.MicroKernel.Registration;
using Castle.MicroKernel.SubSystems.Configuration;
using Castle.Windsor;
using Domain.DataManagenent;
using Domain.Entities;
using Domain.UserManagenent;
using Logic.Services;
using Logic.UserManagement;
using Services;
using Logic;

namespace Mestedur.Models.WindsorModules
{
    public class ServiceInstaller : IWindsorInstaller
    {
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Register(Component.For<IResultService>().ImplementedBy<ResultService>());
            container.Register(Component.For<IEditorService>().ImplementedBy<EditorService>());
            container.Register(Component.For<IQuizService>().ImplementedBy<QuizService>());
            container.Register(Component.For<IUserService>().ImplementedBy<UserService>());
            container.Register(Component.For<IDatabaseService>().ImplementedBy<DatabaseService>());
            container.Register(Component.For<IImporter<User>>().ImplementedBy<UserImporter>());
            container.Register(Component.For<IExporter>().ImplementedBy<UserExporter>());
        }
    }
}
